package com.javaweb.secondhand_trading.mapper;

import com.javaweb.secondhand_trading.entity.ProductImage;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 商品图片数据访问接口
 * 使用MyBatis注解方式实现商品图片相关的数据库操作
 */
@Mapper // 标识这是一个MyBatis的Mapper接口
public interface ProductImageMapper {

    /**
     * 插入商品图片记录
     * @param productImage 商品图片实体对象，包含productId和imageUrl
     * @return 受影响的行数
     */
    @Insert("INSERT INTO product_images(product_id, image_url) VALUES(#{productId}, #{imageUrl})")
    int insert(ProductImage productImage);

    /**
     * 根据商品ID删除所有关联的图片记录
     * @param productId 商品ID
     * @return 受影响的行数
     */
    @Delete("DELETE FROM product_images WHERE product_id = #{productId}")
    int deleteByProductId(Integer productId);

    /**
     * 根据商品ID查询所有关联的图片
     * @param productId 商品ID
     * @return 商品图片列表
     */
    @Select("SELECT * FROM product_images WHERE product_id = #{productId}")
    List<ProductImage> findByProductId(Integer productId);
}